public async shareHf(params) {
	const canvas = createCanvas(750, 1334);
	const ctx = canvas.getContext('2d');
	registerFont(__dirname + '../../../resource/msyhbd.ttf', { family: 'msyhbd' });
	const fontStrle = "msyhbd";
	const {
		shoptype = 0,
		goodPic = "",
		title = "",
		endPrice = 0,
		couponMoney = 0,
		price = 0,
		link = "",
	} = params;

	// 店铺区分
	let shopIcon;
	if (shoptype === 0) {
		// 淘宝
		shopIcon = 'https://onecode-zfx-one.oss-cn-shenzhen.aliyuncs.com/20200707/2bac04b0-c003-11ea-ba16-49a1b1d71eeb.png';
	} else if (shoptype === 1) {
		// 天猫
		shopIcon = 'https://onecode-zfx-one.oss-cn-shenzhen.aliyuncs.com/20200707/424aba90-c003-11ea-b1c3-8f314d25368b.png';
	} else if (shoptype === 2) {
		// 京东
		shopIcon = 'https://onecode-zfx-one.oss-cn-shenzhen.aliyuncs.com/20200707/4a439780-c003-11ea-8b38-2f29b16ee45d.png';
	} else {
		// 拼多多
		shopIcon = 'https://onecode-zfx-one.oss-cn-shenzhen.aliyuncs.com/20200707/519203a0-c003-11ea-8f5b-a5e135246d66.png';
	}
	// 绘制背景色
	ctx.fillStyle = '#FFFFFF';
	ctx.fillRect(0, 0, 750, 1334);

	// 绘制平台图标
	await loadImage(shopIcon).then((image) => {
		ctx.drawImage(image, 18, 18, 48, 48);
	});

	// 绘制商品标题
	ctx.fillStyle = '#171717';
	ctx.font = `36px ${fontStrle}`;
	if (title.length <= 17) {
		ctx.fillText(title, 80, 55);
	} else {
		if (title.length > 34) {
			ctx.fillText(
				title.substring(0, 17),
				80,
				55
			);
			ctx.fillText(
				title.substring(17, 34) + '...',
				18,
				108
			);
		} else {
			ctx.fillText(
				title.substring(0, 18),
				80,
				55
			);
			ctx.fillText(
				title.substring(
					18,
					title.length
				),
				18,
				108
			);
		}
	}

	// 绘制券后价
	ctx.fillStyle = '#F70114';
	ctx.fillText('券后价¥', 18, 200);
	ctx.font = `60px ${fontStrle}`;
	ctx.fillText(Number(endPrice).toFixed(2), 150, 200);

	// 绘制原价
	ctx.textAlign = 'left';
	ctx.font = `28px ${fontStrle}`;
	ctx.fillStyle = '#B5B5B5'
	ctx.fillText('原价 ¥' + Number(price).toFixed(2), 18, 260);
	ctx.fillText('————', 100, 260);

	// 绘制优惠券
	await loadImage('https://onecode-zfx-one.oss-cn-shenzhen.aliyuncs.com/20200707/c90e1f10-c01a-11ea-89ba-79b729190266.png').then((image) => {
		ctx.drawImage(image, 602, 158, 124, 62);
	});
	ctx.font = `22px ${fontStrle}`;
	ctx.fillStyle = '#FFFFFF';
	ctx.textAlign = 'center';
	ctx.fillText('¥' + couponMoney, 654, 200);

	// 绘制大图边框
	ctx.fillStyle = '#F73D3E';
	ctx.fillRect(18, 342, 714, 714);

	// 绘制商品大图
	await loadImage(goodPic).then((image) => {
		ctx.drawImage(image, 31, 355, 688, 688);
	});

	// 绘制下单教程
	await loadImage('https://onecode-zfx-one.oss-cn-shenzhen.aliyuncs.com/20200707/e5a23960-c01d-11ea-99f2-95f2a3dd5efc.png').then((image) => {
		ctx.drawImage(image, 18, 1102, 452, 214);
	});

	// 绘制二维码
	const qrCode = await this.createQrCode(link)
	await loadImage(qrCode).then((image) => {
		ctx.drawImage(image, 548, 1132, 184, 184);
	});

	const file = uuid() + '.png';
	const name = 'goods/' + moment().format('YYYYMMDD') + '/' + file;
	const result = await this.ctx.oss.put(name, canvas.toBuffer());
	return result.url;
}